package com.zxl.designpattern.behavioral.iterator;

import java.util.Arrays;

/**
 * 自定义迭代器
 * 实现了Iterator接口，用于遍历MyCollection集合
 */
public class MyIterator implements ICustomIterator {
    private Object[] items;  // 要遍历的元素数组
    private int position;    // 当前位置
    
    /**
     * 构造函数，初始化迭代器
     * @param items 要遍历的元素数组
     * @param size 元素数量
     */
    public MyIterator(Object[] items, int size) {
        // 创建一个副本，避免外部修改原始数组
        this.items = Arrays.copyOf(items, size);
        this.position = 0;
    }
    
    @Override
    public boolean hasNext() {
        return position < items.length;
    }
    
    @Override
    public Object next() {
        if (!hasNext()) {
            throw new java.util.NoSuchElementException();
        }
        return items[position++];
    }
}    